package com.pi.wms.entity;


import com.fasterxml.jackson.annotation.JsonView;
import com.pi.framework.core.bean.PageResult;
import com.pi.framework.core.model.IdAuditableEntity;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.springframework.data.jpa.datatables.mapping.DataTablesOutput;

import javax.persistence.*;
import java.math.BigDecimal;


@Entity
@NoArgsConstructor
@Getter
@Setter
@Table(name = "VWA_INV_LOTNUM_LIST")
public class VwaInventoryLotnumStorageage extends IdAuditableEntity {
	private static final long serialVersionUID = -620701004711068000L;

    @Id
    @GeneratedValue(generator = "SEQ_VWA_INV_LOTNUM_ID")
    @GenericGenerator(name = "SEQ_VWA_INV_LOTNUM_ID",strategy = "com.pi.framework.data.FitIdentifierGenerator", parameters = {
            @Parameter(name = "sequence_name", value = "SEQ_VWA_INV_LOTNUM_ID") })
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTNUM_ID")
    private Long id;

    @Column(name = "VERSION")
    private Long version = Long.valueOf(0L);

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "GCLIENT_ID")
    private Long globalClientId;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "DIVISION_ID")
    private Long divisionId;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "CUSTOMER_ID")
    private Long customerId;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "MATERIAL_ID")
    private Long materialId;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "MATERIAL_CODE")
    private String materialCode;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "MATERIAL_NAME")
    private String materialName;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "LOTNO_ID")
    private Long lotnoId;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR05")
    private String lotattr05;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR06")
    private String lotattr06;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR07")
    private String lotattr07;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "QTY")
    private BigDecimal qty;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "QTY_SOFTALLOCATED")
    private BigDecimal qtySoftallocated;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "QTY_ALLOCATED")
    private BigDecimal qtyAllocated;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "QTY_HOLD")
    private BigDecimal qtyHold;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "TOTAL_PRICE")
    private BigDecimal totalPrice;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "TOTAL_CUBIC")
    private BigDecimal totalCubic;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "TOTAL_GROSSWEIGHT")
    private BigDecimal totalGrossweight;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "TOTAL_NETWEIGHT")
    private BigDecimal totalNetweight;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "RESERVE_CODE")
    private String reserveCode;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "RESERVE_DOC_NUMBER")
    private String reserveDocNumber;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "BULK_STATUS")
    private String bulkStatus;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "NOTES")
    private String notes;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "AGE_DAYS")
    private Integer ageDays;


}
